home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side A).zip / Softdisk Magazette Volume 2, No. 03 (1982-11)(Softdisk)(Side A).do / MATCHMAKER II.bas < prev    next >
BASIC Source File  |  1996-12-24  |  13KB  |  215 lines

  1. 100  HOME : LIST 6000,: HTAB 14: INVERSE : PRINT " HIT SPACE BAR ";: NORMAL : GET R$: PRINT R$
  2. 110 SUP =  -912:L = 32:LN = 39: FOR X = 1 TO 40:DAS$ = DAS$ +"-": NEXT : GOSUB 930
  3. 115 D$ =  CHR$(4):PROG$ = "MATCHMAKER II"
  4. 120  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>INITIALIZATION<CTRL-J><CTRL-J>
  5. 130  TEXT : HOME 
  6. 150 X =  RND( - PEEK(78) - PEEK(79) *256)
  7. 160  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>(RANDOMIZE)<CTRL-J><CTRL-J>
  8. 170  DIM M$(20,3),OK(20),QZ$(15)
  9. 180 DOT$ = "...................."
  10. 185 BZ =  -16336
  11. 190  GOSUB 1380
  12. 220 Z = 1
  13. 230  FOR X = 0 TO NUM -1
  14. 240 N =  INT(NUM * RND(1)): FOR Y = 1 TO Z -1: IF OK(Y) = N  THEN Y = Z -1: NEXT : GOTO 240
  15. 250  NEXT :OK(Z) = N:M$(X,3) = M$(N,2)
  16. 260 Z = Z +1: PRINT ".";: NEXT : PRINT 
  17. 270 UP = 136:DOWN = 149
  18. 280 KB =  -16384:CB =  -16368
  19. 290 SP = 160:ESC = 155
  20. 300  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>SETUP DISPLAY<CTRL-J><CTRL-J>
  21. 310  TEXT : HOME 
  22. 320  PRINT LT$;: HTAB 21: PRINT RT$: PRINT  LEFT$(DAS$,39)
  23. 325  INVERSE : FOR X = 0 TO NUM -1: VTAB X +3: HTAB 1: PRINT  SPC( 20): NEXT : VTAB 3
  24. 330  HTAB 1: FOR X = 0 TO NUM -1
  25. 340  PRINT M$(X,1) LEFT$(DOT$,20 - LEN(M$(X,1)));: NORMAL : PRINT M$(X,3): INVERSE 
  26. 350  NEXT : NORMAL 
  27. 360  PRINT  LEFT$(DAS$,39);
  28. 370  VTAB 23
  29. 380  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>INPUT ROUTINE<CTRL-J><CTRL-J>
  30. 390  VTAB 3: HTAB 21: INVERSE : PRINT M$(0,3) SPC( 19 - LEN(M$(0,3))): NORMAL : HTAB 1
  31. 400  VTAB 24: PRINT "ARROWS=UP/DOWN, SPACE=PICK UP, ESC=QUIT";
  32. 410  POKE CB,0:CUR = 1
  33. 420 IN =  PEEK(KB): IF IN <128  THEN 420
  34. 430 X =  PEEK(BZ) + PEEK(BZ): POKE CB,0
  35. 440  IF IN < >UP  AND IN < >DOWN  AND IN < >ESC  AND IN < >SP  THEN 420
  36. 450  VTAB CUR +2: HTAB 21: PRINT M$(CUR -1,3);: CALL  -868
  37. 460 CUR = CUR -(IN = UP) +(IN = DOWN)
  38. 470  IF IN = ESC  THEN 720
  39. 480  IF CUR <1  THEN CUR = NUM
  40. 490  IF CUR >NUM  THEN CUR = 1
  41. 500  VTAB CUR +2: HTAB 21: INVERSE : PRINT M$(CUR -1,3) SPC( 19 - LEN(M$(CUR -1,3))): NORMAL 
  42. 510  IF IN = SP  THEN 530
  43. 520  GOTO 420
  44. 530  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>PICK IT UP<CTRL-J><CTRL-J>
  45. 540  VTAB CUR +2: HTAB 21: FLASH : PRINT M$(CUR -1,3) SPC( 19 - LEN(M$(CUR -1,3))): NORMAL :M$ = M$(CUR -1,3):OCUR = CUR
  46. 545  HTAB 1
  47. 550  VTAB 24: PRINT "    ARROWS=UP/DOWN, SPACE=EXCHANGE     ";
  48. 560 IN =  PEEK(KB): IF IN <128  THEN 560
  49. 570 X =  PEEK(BZ) + PEEK(BZ): POKE CB,0
  50. 580  IF IN < >UP  AND IN < >DOWN  AND IN < >SP  THEN 560
  51. 590  VTAB CUR +2: HTAB 21: PRINT M$(CUR -1,3);: CALL  -868
  52. 600 CUR = CUR -(IN = UP) +(IN = DOWN)
  53. 610  IF IN = SP  THEN 660
  54. 620  IF CUR <1  THEN CUR = NUM
  55. 630  IF CUR >NUM  THEN CUR = 1
  56. 640  VTAB CUR +2: HTAB 21: FLASH : PRINT M$ SPC( 19 - LEN(M$)): NORMAL 
  57. 650  GOTO 560
  58. 660  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>EXCHANGE<CTRL-J><CTRL-J>
  59. 670  VTAB OCUR +2: HTAB 21: PRINT M$(CUR -1,3);: CALL  -868
  60. 680  VTAB CUR +2: HTAB 21: PRINT M$;: CALL  -868
  61. 690 M$(OCUR -1,3) = M$(CUR -1,3)
  62. 700 M$(CUR -1,3) = M$
  63. 710 CUR = 1: GOTO 380
  64. 720  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>FINISHED<CTRL-J><CTRL-J>
  65. 730  GOSUB 1700: HOME :W = 0
  66. 740  FOR X = 0 TO NUM -1
  67. 750  IF M$(X,2) < >M$(X,3)  THEN W = W +1:OK(W) = X
  68. 760  NEXT 
  69. 770  VTAB 11
  70. 780  PRINT "YOU GOT "W" WRONG OUT OF "NUM
  71. 790  IF   NOT W  THEN 860
  72. 800  PRINT : PRINT "PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " TO SEE ONES YOU GOT WRONG ";X$
  73. 810  HOME 
  74. 820  FOR X = 1 TO W
  75. 830  HTAB 19 - LEN(M$(OK(X),1)): PRINT M$(OK(X),1)"..."M$(OK(X),2)
  76. 840  NEXT 
  77. 850  VTAB 24: HTAB 8: PRINT "PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " TO CONTINUE ";X$
  78. 860  GOSUB 1700: HOME 
  79. 870  VTAB 12
  80. 880  INPUT "CARE TO TRY AGAIN? ";X$
  81. 890 X$ =  LEFT$(X$,1)
  82. 900  IF X$ < >"Y"  AND X$ < >"N"  THEN  HOME : GOTO 870
  83. 910  IF X$ = "N" GOTO 1425
  84. 920  PRINT  CHR$(4);"RUN ";PROG$
  85. 930  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>         <CTRL-M>INTRODUCTION<CTRL-J><CTRL-J>
  86. 940  TEXT : HOME 
  87. 950  HTAB 6: PRINT "MATCHMAKER ][: A MATCHING QUIZ"
  88. 960  HTAB 7: PRINT  LEFT$(DAS$,27)
  89. 970  PRINT : PRINT 
  90. 980  PRINT "    THIS PROGRAM IS A MATCHING QUIZ THAT"
  91. 990  PRINT "YOU CAN MAKE YOUR OWN QUIZZES WITH."
  92. 1020  PRINT : PRINT : PRINT 
  93. 1030  PRINT "WOULD YOU LIKE TO (T)RY A QUIZ OR"
  94. 1040  PRINT 
  95. 1050  INPUT "(R)EAD THE DOCUMENTATION? ";X$
  96. 1060 X$ =  LEFT$(X$,1): IF X$ < >"T"  AND X$ < >"R"  THEN 940
  97. 1070  IF X$ = "T"  THEN  GOSUB 1730: RETURN 
  98. 1080  GOSUB 1730: TEXT : HOME : HTAB 9
  99. 1090  PRINT "MATCHMAKER DOCUMENTATION"
  100. 1100  HTAB 9: PRINT  LEFT$(DAS$,10)" " LEFT$(DAS$,13)
  101. 1110  POKE 34,3: PRINT 
  102. 1120  PRINT "INSTRUCTIONS:"
  103. 1140  PRINT "     MOVE THE ";: INVERSE : PRINT "INVERSE";: NORMAL : PRINT " CURSOR UP AND DOWN"
  104. 1150  PRINT "WITH THE RIGHT AND LEFT ARROWS. THE CUR-"
  105. 1160  PRINT "SOR WRAPS AROUND FROM TOP TO BOTTOM AND "
  106. 1170  PRINT "VICE VERSA. PRESS THE SPACE BAR TO GRAB "
  107. 1180  PRINT "THE WORD(S) CURRENTLY CONTAINED BY THE  "
  108. 1190  PRINT "CURSOR. THE CHOICE WILL BEGIN ";: FLASH : PRINT "FLASHING": NORMAL 
  109. 1200  PRINT : PRINT "AND YOU MAY EXCHANGE IT WITH ANOTHER BY "
  110. 1210  PRINT "PRESSING THE SPACE BAR AGAIN. WHEN ALL  "
  111. 1220  PRINT "ARE MATCHED UP, PRESS 'ESC' TO QUIT."
  112. 1230  VTAB 24: HTAB 8: PRINT "PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " TO CONTINUE ";X$
  113. 1240  GOSUB 1730: HOME 
  114. 1250  PRINT "    YOU CAN CREATE YOUR OWN QUIZZES...": PRINT : PRINT "TAKE THE 'C' OPTION AT THE MENU. YOU": PRINT : PRINT "WILL THEN BE ASKED FOR COLUMN HEADINGS"
  115. 1255  PRINT : PRINT "AND HOW MANY MATCHES YOU HAVE. THE": PRINT : PRINT "PROGRAM WILL ASK FOR EACH MATCH AND": PRINT : PRINT "ASK YOU TO VERIFY THE ENTRY. A <RETURN>"
  116. 1260  PRINT : PRINT "WILL BE TAKEN AS A YES. THEN THE FILE": PRINT : PRINT "WILL BE SAVED UNDER A NAME OF YOUR": PRINT : PRINT "CHOICE."
  117. 1265  VTAB 24: HTAB 8: PRINT "PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " TO CONTINUE ";X$
  118. 1270  GOSUB 1730: HOME 
  119. 1275  PRINT "    THIS PROGRAM WILL THEN BE CHANGED": PRINT : PRINT "TO REFLECT THE NEW QUIZ DATA, USING AN": PRINT : PRINT "'EXEC' FILE, FINALLY BEING SAVED UNDER"
  120. 1280  PRINT : PRINT "THE NAME SET AS VARIABLE PROG$ IN LINE": PRINT : PRINT "NUMBER 115.": PRINT 
  121. 1290  PRINT "SOME POSSIBILITIES:": PRINT 
  122. 1300  HTAB 5: PRINT "- SPANISH, ENGLISH": PRINT 
  123. 1320  HTAB 5: PRINT "- WORD, SYNONYM": PRINT 
  124. 1330  HTAB 5: PRINT "- INVENTION, INVENTOR": PRINT 
  125. 1340  HTAB 10: PRINT "... ETC ..."
  126. 1350  VTAB 24: HTAB 6: PRINT "PRESS ";: INVERSE : PRINT "RETURN";: NORMAL : INPUT " FOR THE MENU ";X$
  127. 1360  GOSUB 1730: RETURN 
  128. 1370  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M>QUIZ DATA MENU<CTRL-J>
  129. 1380  HOME : PRINT : PRINT "CHOOSE YOUR QUIZ:": PRINT : PRINT : PRINT 
  130. 1381  PRINT "1 - TV HERO/SIDEKICK.":QZ$(1) = "TV HERO/SIDEKICK"
  131. 1382  PRINT "2 - CALLING NAMES.":QZ$(2) = "CALLING NAMES"
  132. 1383  PRINT "3 - ENGLISH/AMERICAN.":QZ$(3) = "ENGLISH/AMERICAN"
  133. 1384  PRINT "4 - LANGUAGES SPOKEN.":QZ$(4) = "LANGUAGES SPOKEN"
  134. 1385  PRINT "5 - MONEY MAD.":QZ$(5) = "MONEY MAD"
  135. 1386  PRINT "6 - ODD OLOGIES.":QZ$(6) = "ODD OLOGIES"
  136. 1387  PRINT "7 - PRESIDENT'S MIDDLES.":QZ$(7) = "PRESIDENT'S MIDDLES"
  137. 1388  REM QUIZ 8
  138. 1389  REM QUIZ 9
  139. 1390  REM QUIZ 10
  140. 1391  REM QUIZ 11             
  141. 1392  REM QUIZ 12
  142. 1393  REM QUIZ 13
  143. 1394  REM QUIZ 14
  144. 1395  REM QUIZ 15
  145. 1399 NQ = 7: REM  # OF QUIZZES          AVAIL.
  146. 1400  VTAB 22: HTAB 1: CALL  -868: PRINT "CHOOSE (1 - ";NQ;"),(C)REATE QUIZ,(E)ND";
  147. 1410  INPUT CH$: IF  LEFT$(CH$,1) = "C"  THEN  GOSUB 2000
  148. 1420  IF  LEFT$(CH$,1) < >"E" GOTO 1430
  149. 1425  HOME : VTAB 12: PRINT " THANK YOU FOR USING MATCHMAKER ][": FOR I = 1 TO 1500: NEXT : PRINT  CHR$(4);"RUN KICK.IT.OFF"
  150. 1430 QN =  VAL(CH$): IF QN <1  OR QN >NQ  THEN 1380
  151. 1435  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>READ A QUIZ<CTRL-J><CTRL-J>
  152. 1440  PRINT D$;"OPEN ";QZ$(QN): PRINT D$;"READ ";QZ$(QN)
  153. 1450  INPUT NUM: INPUT LT$: INPUT RT$
  154. 1460  FOR X = 0 TO NUM -1: INPUT M$(X,1): INPUT M$(X,2): NEXT 
  155. 1470  PRINT D$;"CLOSE ";QZ$(QN)
  156. 1480  RETURN 
  157. 1690  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>FANCY SCREEN CLEAR #1<CTRL-J><CTRL-J>
  158. 1700  POKE 33,1: FOR Z = 0 TO 5: FOR X = 0 TO 39: POKE L,X: CALL SUP: CALL SUP: POKE L,LN -X: CALL SUP: CALL SUP: NEXT : NEXT 
  159. 1710  POKE L,0: POKE 33,40: RETURN 
  160. 1720  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>FANCY SCREEN CLEAR #2<CTRL-J><CTRL-J>
  161. 1730 WD = 0: FOR Z = 0 TO 31:WD = WD +1: POKE 33,WD: POKE L,0: CALL SUP: POKE L,LN -Z: CALL SUP: NEXT 
  162. 1740  POKE L,0: POKE 33,40: RETURN 
  163. 1995  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>CREATE A QUIZ<CTRL-J><CTRL-J>
  164. 2000  GOSUB 1730: VTAB 1: HTAB 13: PRINT "CREATE A QUIZ": VTAB 5
  165. 2010  VTAB 8: CALL  -958: PRINT "ENTER HEADING FOR LEFT COLUMN :": VTAB 10: HTAB 5: PRINT "__________________": VTAB 10: HTAB 5: INPUT "";LT$:IL =  LEN(LT$): GOSUB 5000: IF BAD  THEN 2010
  166. 2020  VTAB 12: CALL  -958: PRINT "ENTER HEADING FOR RIGHT COLUMN :": VTAB 14: HTAB 5: PRINT "__________________": VTAB 14: HTAB 5: INPUT "";RT$:IL =  LEN(RT$): GOSUB 5000: IF BAD  THEN 2020
  167. 2030  VTAB 16: HTAB 1: CALL  -958: PRINT "HOW MANY MATCHES WILL YOU HAVE? (2 - 20) ";: INPUT NUM$:NUM =  VAL(NUM$): IF NUM >20  OR NUM <2  THEN 2030
  168. 2035  VTAB 20: HTAB 1: PRINT "IS THIS CORRECT? ";: INPUT "";R$: IF  LEFT$(R$,1) = "N"  THEN 2000
  169. 2040  FOR X = 0 TO NUM -1: VTAB 5: CALL  -958
  170. 2050  VTAB 6: HTAB 1: CALL  -958: PRINT "ENTER LEFT MATCH ENTRY # ";X +1;" : "
  171. 2060  VTAB 8: HTAB 5: PRINT "__________________": VTAB 8: HTAB 5: INPUT "";M$(X,1):IL =  LEN(M$(X,1)): GOSUB 5000: IF BAD  THEN 2050
  172. 2070  VTAB 10: HTAB 1: CALL  -958: PRINT "ENTER RIGHT MATCH ENTRY # ";X +1;" : "
  173. 2080  VTAB 12: HTAB 5: PRINT "__________________": VTAB 12: HTAB 5: INPUT "";M$(X,2):IL =  LEN(M$(X,2)): GOSUB 5000: IF BAD  THEN 2070
  174. 2085  VTAB 20: HTAB 1: PRINT "IS THIS CORRECT? ";: INPUT "";R$: IF  LEFT$(R$,1) = "N"  THEN 2050
  175. 2090  NEXT X
  176. 2100  VTAB 5: CALL  -958: VTAB 10: HTAB 1: PRINT "SAVE THIS QUIZ UNDER WHAT NAME ?": INPUT "- ";QUIZ$
  177. 2110  PRINT D$;"OPEN ";QUIZ$: PRINT D$;"WRITE ";QUIZ$
  178. 2120  PRINT NUM: PRINT LT$: PRINT RT$: FOR X = 0 TO NUM -1: PRINT M$(X,1): PRINT M$(X,2): NEXT 
  179. 2130  PRINT D$;"CLOSE ";QUIZ$: PRINT D$;"LOCK ";QUIZ$
  180. 2145  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>  MODIFY PROGRAM<CTRL-M>  WITH NEW DATA LINES<CTRL-J><CTRL-J>
  181. 2150 NQ = NQ +1:NL = 1380 +NQ:Q$ =  CHR$(34):LINE$ =  STR$(NL) +"PRINT" +Q$ + STR$(NQ) +" - " +QUIZ$ +"." +Q$ +":QZ$(" + STR$(NQ) +") = " +Q$ +QUIZ$ +Q$
  182. 2160  PRINT D$;"OPEN CHANGER": PRINT D$;"WRITE CHANGER"
  183. 2170  PRINT LINE$
  184. 2180  PRINT "1399 NQ=";NQ;": REM # OF QUIZZES          AVAIL."
  185. 2190  PRINT "UNLOCK ";PROG$: PRINT "SAVE ";PROG$: PRINT "LOCK ";PROG$
  186. 2200  PRINT "RUN": PRINT D$;"CLOSE CHANGER"
  187. 2300  PRINT D$;"EXEC CHANGER": END 
  188. 2990  RETURN 
  189. 4995  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>          <CTRL-M><CTRL-M>QUIZ ENTRY ERROR<CTRL-M>CHECKING ROUTINE<CTRL-J><CTRL-J>
  190. 5000 VT =  PEEK(37): IF IL <19  THEN 5030
  191. 5010  VTAB VT +3: HTAB 3: INVERSE : PRINT "TOO LONG: MUST BE 18 CHAR. OR LESS!": FOR DD = 1 TO 1600: NEXT : NORMAL 
  192. 5020  VTAB VT +3: HTAB 3: CALL  -958: VTAB VT +1: HTAB 1:BAD = 1: RETURN 
  193. 5030 BAD = 0: RETURN 
  194. 10000  REM <CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H><CTRL-H>           <CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M><CTRL-M>    
  195. 65535  REM *******************
  196. 65535  REM     MATCHMAKER
  197. 65535  REM    BY: JIM GANZ
  198. 65535  REM      82 SPRING LN
  199. 65535  REM      WEST HARTFORD,
  200. 65535  REM      CT., 06107
  201. 65535  REM 
  202. 65535  REM ALL RIGHTS RESERVED
  203. 65535  REM 
  204. 65535  REM   APRIL 20, 1982
  205. 65535  REM *******************
  206. 65535  REM 
  207. 65535  REM *******************
  208. 65535  REM * CREATE-A-QUIZ & *
  209. 65535  REM *   READ-A-QUIZ   *
  210. 65535  REM *  OPTIONS ADDED  *
  211. 65535  REM * BY: DALE SALYER *
  212. 65535  REM * 101 E. 88TH AV. *
  213. 65535  REM * THORNTON, COLO. *
  214. 65535  REM *        80229    *
  215. 65535  REM *******************